package com.wen.spring.xxl_job;

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;

/**
 * @author 十一
 * @Description
 * @create 2021-07-07-下午 21:09
 */
@Component
public class XxlJobController  {

    @XxlJob("testJobHandler")
    public ReturnT<String> demoJobHandler(String param) throws Exception {
        System.out.println("使用xxl-job进行任务调动");
        return ReturnT.SUCCESS;
    }


    /**
     * 使用教程：
     * 1、下载并解压源码，获取初始化数据库SQL(当前目录下doc文件夹)
     * 2、在IDEA中导入解压后的xxl-job源码，并修改/xxl-job/xxl-job-admin/src/main/resources/路径下application.properties文件
     *      主要修改当前文件中的数据库JDBC配置，修改为执行完初始化SQL后的数据库地址，其他文件根据实际情况按需修改
     * 3、将当前xxl-job 项目打包成jar包，可放置本地或服务器运行
     * 注：如果使用的是docker进行部署的话
     *     （1）需要先 touch Dockerfile 创建一个Dockerfile文件
     *     文件内容如下：
     *          from java:8
     *              add xxl-job-admin-2.3.0.jar xxl.jar
     *              expose 9098
     *              entrypoint ["java","-jar","xxl.jar"]
     *     （2） 创建docker镜像： "docker build -t 镜像名 ." "."代表当前文件夹
     *     （3）创建docker容器： "docker run -id --restart=always --name 镜像名  -p xxl_job端口:xxl_job端口 镜像名"
     *      (4) 用户名密码默认为：admin/123456
     *  4、引入xxl-job的pom文件 如下：
     *          <dependency>
     *             <groupId>com.xuxueli</groupId>
     *             <artifactId>xxl-job-core</artifactId>
     *             <version>2.3.0</version>
     *         </dependency>
     *  5、在yml文件下新增xxl-job配置
     *          xxl:
     *             job:
     *               admin:
     *                 addresses: http://47.103.76.211:9098/xxl-job-admin
     *               executor:
     *                 ip: 47.103.76.211
     *                 port: 9098
     *                 logpath: /data/applogs/xxl-job/jobhandler
     *                 appname: plat-job
     *               accessToken:
     *  6、新建xxl-job配置类 如：XxlJobConfig
     *  7、编写定时任务类：如：XxlJobController
     */
}
